from abc import ABC, abstractmethod
from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from .Chess import ChessBase


class DeathBase(ABC):
    def __init__(self):
        pass

    def __init__(self, chess: "ChessBase"):
        self.owner = chess

    @abstractmethod
    def can_be_killed(self, killer: "ChessBase"):
        pass

    def on_death(self, killer: "ChessBase"):
        pass
